文章摘要
加载中...|
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结 投诉

概述

大语言模型(Large Language Model,简称 LLM)是近年来 AI 领域最重要的技术突破之一。它能够理解和生成人类语言,展现出惊人的推理、创作和问题解决能力。本文将从零开始介绍 LLM 的核心概念、发展历程和基本用法,帮助你建立对大语言模型的理解。

什么是大语言模型(LLM)

定义

大语言模型是基于深度学习的 AI 系统,通过在海量文本数据上进行训练,学习语言的统计规律和语义关系,从而能够:

  • 理解和生成自然语言
  • 回答问题和解释概念
  • 进行逻辑推理和归纳
  • 创作文本内容(文章、代码、诗歌等)
  • 进行翻译和摘要

"大"的含义

维度说明示例
参数规模模型参数数量GPT-4 约万亿级,Llama 2-70B 为 700 亿
训练数据用于训练的文本数据量Common Crawl 包含数万亿单词
算力投入训练所需的计算资源GPT-4 训练耗资估计超 1 亿美元
上下文窗口可处理的文本长度Claude 3 支持最大 200K tokens

LLM 的能力边界

✅ LLM 擅长的任务:

text
┌─────────────────────────────────────────────────────────┐
│  文本生成     │  代码编写      │  数据分析    │  推理问答  │
│  翻译摘要     │  内容创作      │  知识问答    │  对话交互  │
└─────────────────────────────────────────────────────────┘

❌ LLM 的局限性:

  • 可能产生"幻觉"(编造事实)
  • 数学计算不够精确
  • 缺乏真实世界的最新信息
  • 无法访问外部数据(除非使用工具)
  • 推理深度受上下文限制

LLM 的发展历程

早期阶段(2017 年之前)

text
2013  Word2Vec        词向量表示
2015  Seq2Seq         序列到序列模型
2017  Transformer     注意力机制诞生

关键突破: Google 发布《Attention Is All You Need》论文,提出 Transformer 架构。

GPT 系列演进

text
┌────────────────────────────────────────────────────────────┐
│                         GPT 系列演进                        │
├────────────────────────────────────────────────────────────┤
│                                                            │
│  2018  GPT-1       │  1.17亿参数  │  初步验证了预训练思路    │
│       ↓            │             │                         │
│  2019  GPT-2       │  15亿参数   │  "太危险不能发布"         │
│       ↓            │             │                         │
│  2020  GPT-3       │  1750亿参数 │  少样本学习能力           │
│       ↓            │             │                         │
│  2023  GPT-3.5     │  未知       │  ChatGPT 横空出世        │
│       ↓            │             │                         │
│  2023  GPT-4       │  ~1.7万亿   │  多模态能力               │
│       ↓            │             │                         │
│  2024  GPT-4o      │  优化版本   │  原生多模态+更快速度      │
│                                                            │
└────────────────────────────────────────────────────────────┘

其他重要模型

text
开源模型:
  2023  Llama 2          Meta 开源,70B 参数成为标杆
  2024  Llama 3          400B 参数,接近 GPT-4 水平
  2024  Mistral          欧洲最强开源模型
  2024  Qwen 2.5         阿里通义千问,中文能力突出
  2024  DeepSeek-V3      国产模型,性能卓越

闭源模型:
  2023  Claude 2         Anthropic,长上下文优势
  2024  Claude 3.5       当前最强的通用模型之一
  2024  Gemini 1.5 Pro   Google,百万级上下文

Transformer 架构原理

核心概念:自注意力机制

Transformer 的核心是自注意力机制(Self-Attention),它允许模型在处理每个词时关注输入序列中的其他所有词。

text
输入:"小猫 坐在 沙发 上"

注意力机制处理过程:

┌─────────────────────────────────────────────────────┐
│  小猫  →  关注 [小猫, 坐在, 沙发, 上] 的关联程度      │
│  坐在  →  关注 [小猫, 坐在, 沙发, 上] 的关联程度      │
│  沙发  →  关注 [小猫, 坐在, 沙发, 上] 的关联程度      │
│  上    →  关注 [小猫, 坐在, 沙发, 上] 的关联程度      │
└─────────────────────────────────────────────────────┘

Transformer 结构

text
                    Transformer 架构
┌────────────────────────────────────────────────────────┐
│                                                        │
│  ┌──────────────┐        ┌──────────────┐             │
│  │   Encoder    │  →     │   Decoder    │             │
│  │  (编码器)     │        │  (解码器)     │             │
│  └──────────────┘        └──────────────┘             │
│       │                        │                       │
│       ▼                        ▼                       │
│  ┌──────────────┐        ┌──────────────┐             │
│  │  自注意力     │        │  自注意力     │             │
│  │  前馈网络     │        │  交叉注意力   │             │
│  │  残差连接     │        │  前馈网络     │             │
│  │  层归一化     │        │  残差连接     │             │
│  └──────────────┘        │  层归一化     │             │
│                          └──────────────┘             │
└────────────────────────────────────────────────────────┘

关键组件

组件作用
Tokenization将文本切分为 tokens(词/字符)
Embedding将 tokens 转换为向量表示
Attention计算 token 之间的关联权重
Feed-Forward处理和转换信息
Layer Norm稳定训练过程
Residual保留原始信息,防止梯度消失

预训练与微调

预训练(Pre-training)

预训练是 LLM 的"学习"阶段:

text
预训练流程:

┌─────────────────────────────────────────────────────────┐
│                                                         │
│  1. 收集海量文本数据                                      │
│     └── 网页、书籍、代码、论文等                          │
│                                                         │
│  2. 设计训练目标                                          │
│     └── 下一个 token 预测(因果语言建模)                  │
│                                                         │
│  3. 在大量算力上训练                                       │
│     └── 数千张 GPU,训练数周到数月                        │
│                                                         │
│  4. 得到基础模型                                          │
│     └── 学会了语言的通用规律和知识                        │
│                                                         │
└─────────────────────────────────────────────────────────┘

训练目标示例:

text
输入: "The capital of France is"
预测: "Paris"
输入: "To be or not to"
预测: "be"

微调(Fine-tuning)

微调是让模型适应特定任务的过程:

text
基础模型 (Base Model)


┌─────────────────────────────────────────────────────────┐
│  微调阶段                                                │
│                                                         │
│  指令微调 (Instruction Tuning)                           │
│  ├── Q: "什么是量子力学?"                               │
│  └── A: "量子力学是..."                                 │
│                                                         │
│  人类反馈强化学习 (RLHF)                                 │
│  ├── 收集人类对模型回答的排名                            │
│  └── 训练奖励模型,优化输出                              │
│                                                         │
└─────────────────────────────────────────────────────────┘


   对话模型 (Chat Model)

微调方法对比

方法说明适用场景
Full Fine-tuning更新所有参数定制化强,资源充足
LoRA低秩适配,只训练少量参数快速适配,资源受限
QLoRA量化版 LoRA更低显存占用
Prompt Tuning只训练 prompt 嵌入极少参数,效果有限

Prompt Engineering 基础

什么是 Prompt

Prompt 是你给 LLM 的输入文本,好的 Prompt 能显著提升输出质量。

Prompt 的核心要素

text
┌─────────────────────────────────────────────────────────┐
│                    优秀 Prompt 结构                      │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  1. 角色/上下文                                          │
│     "你是一位资深软件工程师..."                          │
│                                                         │
│  2. 任务描述                                             │
│     "请帮我编写一个 Python 函数..."                      │
│                                                         │
│  3. 输入信息                                             │
│     "函数名:calculate_sum,参数:两个数字"              │
│                                                         │
│  4. 输出格式                                             │
│     "请返回代码块和简要说明"                             │
│                                                         │
│  5. 示例(可选)                                         │
│     "示例:输入 2 和 3,输出 5"                          │
│                                                         │
└─────────────────────────────────────────────────────────┘

Prompt 编写技巧

技巧 1:清晰具体

bash
# ❌ 模糊的 prompt
写一段代码

# ✅ 清晰的 prompt
请用 Python 编写一个函数,接收一个整数列表,返回所有偶数的和。
要求包含类型注解和文档字符串。

技巧 2:提供上下文

bash
# ❌ 缺少上下文
这个错误怎么解决?

# ✅ 提供上下文
我在使用 React useState 时遇到报错:
"Too many re-renders. React limits the number of renders..."
我的代码如下:
[粘贴代码]
请问是什么原因以及如何解决?

技巧 3:指定输出格式

bash
# ✅ 明确格式要求
请分析以下数据,并以 JSON 格式返回:
{
  "summary": "数据摘要",
  "key_points": ["要点1", "要点2"],
  "recommendation": "建议"
}

技巧 4:使用示例(Few-shot)

bash
# 通过示例教会模型期望的格式

输入: 北京 输出: 中国/北京
输入: 东京 输出: 日本/东京
输入: 巴黎 输出: 法国/巴黎
输入: 伦敦 输出: ?
# 模型会输出: 英国/伦敦

技巧 5:思维链(Chain of Thought)

bash
# 让模型展示推理过程

请一步步思考这个问题:
如果一个正方形的周长是 20 厘米,它的面积是多少?

第一步:正方形有 4 条相等的边
第二步:每条边长 = 周长 ÷ 4 = 20 ÷ 4 = 5 厘米
第三步:面积 = 边长 × 边长 = 5 × 5 = 25 平方厘米
答案:25 平方厘米

常用 Prompt 模板

bash
# 角色扮演模板
你是一位专业的 [角色],擅长 [技能]。请 [任务]。

# 代码生成模板
请用 [编程语言] 编写一个 [功能描述]。
要求:[具体要求]

# 文案创作模板
请为 [产品/服务] 写一段 [文案类型]。
目标受众:[描述受众]
核心卖点:[列出卖点]
语调风格:[正式/活泼/专业]

# 问题分析模板
请分析以下问题:
[问题描述]

要求从以下几个方面分析:
1. 问题成因
2. 可能的解决方案
3. 推荐方案及理由
4. 预防措施

主流 LLM 对比

模型能力对比

模型公司上下文特色适用场景
GPT-4oOpenAI128K多模态、速度快通用任务、代码、多模态
Claude 3.5 SonnetAnthropic200K长文本、细腻输出长文档处理、精细写作
Gemini 1.5 ProGoogle1M+超长上下文、多模态大规模文档、视频分析
Llama 3.1 405BMeta128K开源最强本地部署、定制化
Qwen 2.5 72B阿里128K中文能力强中文任务、本地部署
DeepSeek-V3国产128K性价比高通用任务、成本敏感

成本对比(仅供参考)

模型输入价格/1M tokens输出价格/1M tokens
GPT-4o$2.50$10.00
Claude 3.5 Sonnet$3.00$15.00
Gemini 1.5 Pro$1.25$5.00
Llama 3 (通过 API)$0.50$0.50
DeepSeek-V3¥1.00¥2.00

注:价格可能随时变化,请以官方为准

性能基准测试

text
通用能力排名(大致):
Claude 3.5 Sonnet ≈ GPT-4o > Gemini 1.5 Pro > DeepSeek-V3 > Qwen 2.5

代码能力排名:
Claude 3.5 Sonnet > GPT-4o > Gemini 1.5 Pro > DeepSeek-Coder-V2

中文能力排名:
DeepSeek-V3 ≈ Qwen 2.5 > Claude 3.5 Sonnet > GPT-4o

长文本能力排名:
Gemini 1.5 Pro (1M) > Claude 3.5 (200K) > GPT-4o (128K)

如何选择合适的 LLM

决策流程

text
┌─────────────────────────────────────────────────────────┐
│                    LLM 选择决策树                        │
└─────────────────────────────────────────────────────────┘

是否需要本地部署?
├─ 是 → 考虑开源模型:Llama 3、Qwen 2.5、DeepSeek-V3
└─ 否 → 是否中文为主?
    ├─ 是 → DeepSeek-V3、Qwen 2.5、Claude 3.5
    └─ 否 → 是否需要超长上下文?
        ├─ 是 → Gemini 1.5 Pro
        └─ 否 → Claude 3.5 Sonnet 或 GPT-4o

是否成本敏感?
├─ 是 → 开源模型 API 或 DeepSeek
└─ 否 → GPT-4o 或 Claude 3.5 Sonnet

应用场景推荐

场景推荐模型理由
通用问答Claude 3.5 / GPT-4o综合能力强
代码编写Claude 3.5 Sonnet代码能力突出
长文档分析Claude 3.5 / Gemini 1.5上下文长
中文应用DeepSeek-V3 / Qwen 2.5中文优化
企业私有化Llama 3 / Qwen 2.5可本地部署
多模态GPT-4o / Gemini 1.5原生多模态
性价比DeepSeek-V3价格低性能好

快速开始示例

使用 OpenAI API

bash
# 安装 SDK
npm install openai

# 调用示例
const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY
});

const completion = await openai.chat.completions.create({
  model: "gpt-4o",
  messages: [
    { role: "system", content: "你是一个有帮助的助手。" },
    { role: "user", content: "什么是 LLM?" }
  ]
});

console.log(completion.choices[0].message.content);

使用 Anthropic API

bash
# 安装 SDK
npm install @anthropic-ai/sdk

# 调用示例
const anthropic = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY
});

const message = await anthropic.messages.create({
  model: "claude-3-5-sonnet-20241022",
  max_tokens: 1024,
  messages: [
    { role: "user", content: "什么是 LLM?" }
  ]
});

console.log(message.content[0].text);

使用开源模型(Ollama)

bash
# 安装 Ollama
# 下载:https://ollama.ai

# 拉取模型
ollama pull llama3.1

# 运行模型
ollama run llama3.1

# API 调用
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.1",
  "prompt": "什么是 LLM?"
}'

注意事项与最佳实践

API 使用安全

bash
# ❌ 不要这样做
const apiKey = "sk-xxx";  // 硬编码

# ✅ 应该这样做
const apiKey = process.env.OPENAI_API_KEY;  // 环境变量

成本控制

bash
# 1. 设置预算限制
export OPENAI_MAX_BUDGET=100

# 2. 使用更小的模型处理简单任务
# 简单分类 → GPT-4o-mini
# 复杂推理 → GPT-4o

# 3. 优化 prompt,减少 token 消耗
# 使用简洁明确的指令
# 避免重复上下文

内容安全

  • 不要输入敏感信息(API Key、密码等)
  • 对用户输入进行过滤和验证
  • 实现 内容审查机制
  • 遵守数据隐私法规

模型幻觉应对

bash
# 策略 1:要求提供依据
"请在回答时标注信息来源"

# 策略 2:使用 RAG 补充知识
"基于以下文档回答问题:[文档内容]"

# 策略 3:要求承认不确定性
"如果你不确定答案,请直接说不知道"

# 策略 4:人工审核
对重要输出进行人工验证

小结

大语言模型(LLM)是 AI 时代的核心基础设施,它通过在海量数据上的预训练获得了强大的语言理解和生成能力。选择合适的 LLM 需要考虑:

  1. 任务需求:通用、代码、长文本、多模态
  2. 语言要求:中文、英文、多语言
  3. 部署方式:云 API、本地部署
  4. 成本预算:按需选择性价比高的模型
  5. 数据隐私:敏感数据考虑本地部署

掌握 Prompt Engineering 是用好 LLM 的关键,通过精心设计的 prompt 可以显著提升模型输出质量。

下一篇文章将深入介绍 LLM 的微调与部署,帮助你定制化属于自己的模型。

赞赏博主
评论 隐私政策